package h

// winuser.h

const (

	// 窗体
	// -----------------------------------------------

	// 窗口位置， hWndInsertAfter 参数：

	HWND_BOTTOM    = HWND(1)            //  1: 移到底部
	HWND_NOTOPMOST = HWND(^uint(2) + 1) // -2: 取消置顶
	HWND_TOP       = HWND(0)            //  0: 移到顶部
	HWND_TOPMOST   = HWND(^uint(1) + 1) // -1: 置顶

	// 窗口大小调整和定位标志。 此参数可以是以下值的组合：

	SWP_NOSIZE         = 0x0001 // 保留当前大小 (忽略 cx 和 cy 参数)
	SWP_NOMOVE         = 0x0002 // 保留当前位置 (忽略 X 和 Y 参数)
	SWP_NOZORDER       = 0x0004 // 保留当前 Z 顺序 (忽略 hWndInsertAfter 参数) 。
	SWP_NOREDRAW       = 0x0008 // 不重绘
	SWP_NOACTIVATE     = 0x0010 // 不激活窗口
	SWP_DRAWFRAME      = 0x0020 // 发送 WM_NCCALCSIZE 消息
	SWP_FRAMECHANGED   = 0x0020 // 发送 WM_NCCALCSIZE 消息
	SWP_SHOWWINDOW     = 0x0040 // 显示“接收端口跟踪选项” 窗口
	SWP_HIDEWINDOW     = 0x0080 // 隐藏窗口
	SWP_NOCOPYBITS     = 0x0100 // 丢弃工作区的整个内容
	SWP_NOOWNERZORDER  = 0x0200 // 不更改所有者窗口在 Z 顺序中的位置
	SWP_NOREPOSITION   = 0x0200 // 与 SWP_NOOWNERZORDER 标志相同
	SWP_NOSENDCHANGING = 0x0400 // 阻止窗口接收 WM_WINDOWPOSCHANGING 消息
	SWP_DEFERERASE     = 0x2000 // 阻止生成 WM_SYNCPAINT 消息
	SWP_ASYNCWINDOWPOS = 0x4000

	// 消息
	// ---------------------------------------------------------------------------

	WM_SETTEXT       = 0x000C // 设置窗口文本
	WM_GETTEXT       = 0x000D // 将对应于窗口的文本复制到调用方提供的缓冲区中。
	WM_GETTEXTLENGTH = 0x000E // 确定与窗口关联的文本的长度（以字符为单位）。
	MN_GETHMENU      = 0x01E1 // 获取菜单
)

// 包含来自线程的消息队列的消息信息。
type MSG struct {
	Hwnd     HWND   // 其窗口过程接收消息的窗口的句柄。 当消息是线程消息时，此成员为 NULL 。
	Message  UINT   // 消息的标识符。 应用程序只能使用低字;高字由系统保留。
	WParam   WPARAM // 关于消息的附加信息。 确切含义取决于 消息 成员的值。
	LParam   LPARAM // 关于消息的附加信息。 确切含义取决于 消息 成员的值。
	Time     DWORD  // 消息的发布时间。
	Point    POINT  // 发布消息时的光标位置（以屏幕坐标表示）。
	LPrivate DWORD
}
